package cn.seaboot.excel.sax;

import org.dom4j.Element;

import java.io.IOException;
import java.util.List;

/**
 * parse tag: thead、tfoot、tbody
 * <p>
 * 实际上，当前解析器，thead、tfoot、tbody 都可以解析。
 * <p>
 * 一般来说，body 部分会比表头简单一些，取消一些操作，可以节省一些机器性能。
 *
 * @author Mr.css
 * @version 2025-07-01 14:37
 */
public class TableHeadParser implements DocumentParser {

    /**
     * 行级解析器
     */
    private DocumentParser tableRowParser = new TableRowParser();

    public DocumentParser getTableRowParser() {
        return tableRowParser;
    }

    public void setTableRowParser(DocumentParser tableRowParser) {
        this.tableRowParser = tableRowParser;
    }

    @Override
    public void parse(Element thead) throws IOException {
        List<Element> trs = thead.elements();

        for (Element tr : trs) {
            tableRowParser.parse(tr);
        }
    }

    @Override
    public void setContext(ExcelContext context) {
        this.tableRowParser.setContext(context);
    }
}
